function subarraySum(nums, k) {
    const map = new Map();
    map.set(0, 1); // 初始化：前缀和为0出现1次
    let prefixSum = 0;
    let count = 0;

    for (const num of nums) {
        prefixSum += num;
        // 检查是否存在 prefixSum - k 的前缀和
        if (map.has(prefixSum - k)) {
            console.log(map.get(prefixSum - k), prefixSum,'map.get(prefixSum - k)')
            count += map.get(prefixSum - k);
        }
        // 更新当前前缀和的出现次数
        map.set(prefixSum, (map.get(prefixSum) || 0) + 1);
    }
    console.log(prefixSum, 'prefixSum')
    return count;
}

// 测试
console.log(subarraySum([1, 10, 5, 5, 9], 10)); 
// console.log(subarraySum([1, 2, 3], 3)); // 输出 2
